gusucode.com > 阵列信号处理书的源码 > MATALB 程序/18.阵列信号处理中DOA估计演示平台MATLAB程序/doa_music.m
function [SP]=doa_music(X,L,d,d2) twpi = 2*pi; Rxx=X*X'; [EV,D]=eig(Rxx);%%%% EVA=diag(D).'; [EVA,I]=sort(EVA); EV=fliplr(EV(:,I)); derad = pi/180; En=EV(:,L+1:end); % MUSIC thes1=0:90; thes2=0:90; num1=0; for iang1 = thes1 num1=num1+1; phim1=derad*iang1; num2=0; for iang2 = thes2 num2=num2+1; phim2=derad*iang2; a1=exp(-1i*twpi*d*sin(phim1)*sin(phim2)).'; a2=exp(-1i*twpi*d2*sin(phim1)*cos(phim2)).'; a = kron(a2,a1); SP(num1,num2)=1/(a'*En*En'*a); end end SP=abs(SP); SPmax=max(SP(:)); SP=SP/SPmax;